"""
@author: liujun
@file: test.py
@time: 2022/11/25 11:34
"""
#1
import time
import datetime
n=int(input("请输入数字n："))
now=datetime.date.today()
t = time.strptime(str(now), "%Y-%m-%d")
y, m, d =  t[0:3]
Date = str(datetime.datetime(y, m, d)-datetime.timedelta(n)).split()
print(Date[0])

#2
import os
path=(r'..')
items = os.listdir(path)
print(items)

#3
list1=[1,2,5,6,8,2,4]
list1=list(set(list1))
list1=sorted(list1)
print(list1)

#4
a=10
def nums():
    global a
    a=20
    print(a)
nums()

#5
#   把全局变量都写在一个模块文件中，
#   使用的时候导入即可

#6
#   整数、浮点数、复数、字符串、布尔、NoneType、列表、元组、字典、集合

#7
import random
print(random.randint(1,10))
print(random.uniform(1,10))
print(random.random())

#8
# 可变数据类型：列表，字典，集合
# 不可变数据类型：数字，字符串，元组

#9
# 对于可变对象，a += 1 直接在原内存地址上操作a = a + 1开辟新的内存操作
# 对于不可变对象都是开辟新空间操作

#10
#pep8是一种编码规范
#1.缩进使用四个空格
#2.运算符的周围用空格
#3.逗号后面使用空格
#4.每一行代码控制在 80 字符以内   超过了就用续航符
#5.注释最好独占一行

#11
str1="asddsasdad"
list1=[]
for i in str1:
    if i in list1:
        print("第一个重复的字符为:",i)
        break
    else:
        list1.append(i)

#12
#深浅拷贝
#只有在容器类型里面包含可变数据类型的时候，深浅拷贝会造造成不同的影响
#浅拷贝之后的数据改变，可能会影响原来的数据
#深拷贝之后的数据改变，不会影响原来的数据
#因为：浅拷贝只拷贝容器类型里的第一层数据的地址
#而深拷贝会拷贝里面的每一层的值

#13
#python中的内存回收方式：
#以 引用计数为主，分代回收和标记清除为辅的垃圾回收方式
#python中的内存池机制
#程序在运行之初 小整数池 [-5,256]
#对于短的只含有字母数字的字符串会触发intern机制缓存

#14
a = [1, 5, 6, 3, 48, 12, 9, 23]
for i in range(0,len(a)-1):
    for j in range(0,len(a)-1-i):
        if a[j] > a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]
print(a)
a = [1, 5, 6, 3, 48, 12, 9, 23]
for i in range(0,len(a)-1):
    for j in range(i+1, len(a)):
        if a[i]<a[j]:
            a[i], a[j] = a[j], a[i]
print(a)


#15
str=input("请输入一串字符：")
if str == str[::-1]:
    print("是回文")
else:
    print("不是一个回文")